2026年全国青少年信息素养大赛星火征途C++编程挑战赛
复赛
真题
小高
2026
2026-07-02 09:21:43
398次
一、单选题
二、多选题
阅读下面程序片段:
int total = 0;
int valid_traps = 0;
int traps[10] = {2, 3, -1, 5, 0, -99};
for (int i = 0; i < 10; i++) {
if (traps[i] == -99) {
break;
}
if (traps[i] == -1) {
traps[i + 1] = 0;
continue;
}
if (traps[i] > 0) {
total += traps[i];
valid_traps++;
}
}下列说法正确的有( )
| A. 程序最终计算出的捕获敌人的总数 total 为 5。 |
B. 程序运行结束后,成功捕获到敌人的陷阱个数 valid_traps 为 3。 |
| C. 代码执行过程中,数组元素 traps[3] 的值被修改为了 0。 |
D. 遇到 break 跳出循环时,循环变量 i 的值为 5。 |
【知识点】 全国青少年信息素养大赛C++编程挑战赛
三、编程题
突击期的最大里程
题目描述
长征途中,为了在保存红军体力的同时加快战略转移,指挥部决定设立一个为期 W 天的“战略突击期”。
由于翻雪山、过草地地形复杂,完全要求每天匀速行军是不现实的。指挥部制定了严格的评估标准:在这连续的 W 天内,任何相邻两天的行军里程差的绝对值都不能超过 D 公里。如果存在相邻两天的差值严格大于 D,则会发生“剧烈颠簸”,该 W 天的突击期将被视为不合格。
请在给定的 N 天行军记录中,找出所有合格的“战略突击期”,并计算在这些合格的突击期中,这 W 天的行军总里程最大是多少。如果没有找到任何一个合格的突击期,则输出 -1。
输入描述
第一行包含三个正整数 N, W, D,分别表示总记录天数、突击期的天数要求、以及相邻两天的最大允许里程差。
第二行包含 N 个非负整数 a1, a2, ..., aN,表示这 N 天里每天的行军里程。
输出描述
输出一个整数,表示在所有合格的“战略突击期”中,这 W 天的行军总里程的最大值。如果没有合格的突击期,输出 -1。
样例输入
7 3 2 10 11 10 15 16 14 20
样例输出
45
【知识点】 全国青少年信息素养大赛C++编程挑战赛
